The software market has become increasingly international in recent years. Ubiquitous software application programs (“software applications”), such as word processing, spread sheets, electronic mail, and the like, are now available in different countries. Making software applications available in different countries often necessitates the creation of software applications with corresponding user interfaces and other human-readable text, such as error messages, presented in various local human languages (as opposed to computer languages). The creation of such localized software applications is necessary in order to increase the market share and the market value of such applications. Including local language is of concern primarily in the user interface of software applications, such as command interface, menus, messages, status information, labels, results of computations, and the like. The need for software applications in different local languages is driven by many factors, among which are the increasing number of countries with different languages where computers are increasingly being used as part of daily business and life, the increasing number of non-technical areas using software applications having user interfaces that require natural language interactions, such as office software applications like word processing, as opposed to technical symbol interaction, that is, interaction using accounting or mathematical symbols, and user's demand to interact with software applications in their own local language. The common term of art used to identify the process of creating software applications in different local languages is “localization”.
In addition to human-readable text, human-visible graphic components, such as icons, colors, and shapes, and human-audible sounds may also have to be localized to address cultural sensitivities and contexts. For example, in some Asian cultures, red represents good fortune and prosperity while in most western cultures red represents danger or caution. So, if a symbol or background of a dialog box in a graphical user interface (“GUI”) is displayed in red, it may have different and confusing connotations for users from different cultures. Therefore, the process of localization goes beyond mere translation of text to a different language and includes the localization of other symbols, colors, and sounds, as well.
The need for localized software applications creates several issues during the development and maintenance of the software applications. The development and maintenance of localized software applications require appropriate development tools and development environments for the processing and localization of various human-readable and human-visible software components. Additionally, localization of software applications may be done by multiple organizations, each comprising multiple departments, and each department performing a different part of the process of localization. One of the major disadvantages of the currently available developmental and organizational environments is the limited extensibility and flexibility of data models used by the development tools and environments. For example, some of the data used by the development tools and environments are in binary format which, makes reading, editing, sharing, and manipulating data difficult at best.
A data format is desired to provide consistency, extensibility, and flexibility across different organizations and development tools. Additionally, standard functional and data interface methods are desirable for accessing and manipulating such data.